# -*- coding: utf-8 -*-
"""
@Time    : 2024/9/10 15:21 
@Author  : ZhangShenao 
@File    : 2.列表添加和删除元素.py 
@Desc    : 列表添加和删除元素
"""

l1 = [1, 2, 3, 4, 5]

# 使用append函数,向列表末尾追加元素
l1.append(6)
print(f"l1 = {l1}")  # [1, 2, 3, 4, 5, 6]

# 使用insert函数,在指定索引(下标)位置插入函数
l1.insert(1, 100)
print(f"l1 = {l1}")  # [1, 100, 2, 3, 4, 5, 6]

# 使用+运算,可以合并两个列表
l1 += [7, 8, 9]
print(f"l1 = {l1}")  # [1, 100, 2, 3, 4, 5, 6, 7, 8, 9]

# 使用remove函数,删除列表中第一个匹配的元素
l1.remove(100)
print(f"l1 = {l1}")  # [1, 2, 3, 4, 5, 6, 7, 8, 9]
# 如果元素不存在,则会报错
# l1.remove(10)  # ValueError: list.remove(x): x not in list
# print(f"l1 = {l1}")

# 使用pop函数,删除列表中指定索引位置的元素,并返回该元素
print(f"l1.pop(1) = {l1.pop(1)}")  # 2
print(f"l1 = {l1}")  # [1, 3, 4, 5, 6, 7, 8, 9]

# 使用clear函数,可以清空整个列表
l1.clear()
print(f"l1 = {l1}")  # []

# 和字符串一样,列表也可以进行切片操作
# 切片表达式为: [start:end:step]
# 切片后生成的列表为一个新列表
l2 = [1, 2, 3, 4, 5]
print(f"l2[1:3] = {l2[1:3]}")  # [2, 3]
# 使用[::-1]操作,可以实现列表的反转
reversed_l2 = l2[::-1]
print(f"reversed_l2 = {reversed_l2}")  # [5, 4, 3, 2, 1]
